package br.com.itc.componentes.util {
	import mx.controls.Alert;
	
	public class ReflectionUtil {
		
		public static function recuperarPropriedade(objeto: Object, propriedade: String): Object {
			var valor: Object = objeto;
			var propriedades: Array = null;

			if (valor == null || propriedade == null || propriedade.length == 0) {
				return null;
			}
			
			if (objeto.hasOwnProperty(propriedade)) {
				return objeto[propriedade];
			}

			propriedades = (propriedade.indexOf(".")) >= 0 ?  propriedade.split(".") : [propriedade];

			for (var i:int = 0; i < propriedades.length; i++) {
				
				if (!valor.hasOwnProperty(propriedades[i])) {
					valor = null;
					break;
				}
				
				valor = valor[propriedades[i]];

				if (valor == null) {
					break;
				}
			}

			return valor;
		}
	}
}
